import request from '@/config/axios'

// ERP基础资料-箱型资料 VO
export interface BaseBoxTypeVO {
  id: string // 主键 ID
  productTypeCode: string // 产品类型编号
  productTypeName: string // 产品类型名称
  productType: string // 产品类型
  customerId: string // 客户 ID
  unitPriceInch: string // 单价(英寸)
  areaInch: string // 面积（英寸）
  volumeInch: string // 立方（英寸）
  weightInch: string // 重量（英寸）
  unitPriceCm: string // 单价（厘米）
  areaCm: string // 面积（厘米）
  volumeCm: string // 体积（厘米）
  weightCm: string // 重量（厘米）
  packageQuantity: number // 包装数
  specConcatMode: string // 规格拼接方式
  specSeparator: string // 规格分隔字符
  specUnit: string // 规格单位字符
  defaultMaterialUnit: string // 用料默认单位
  maxPaperLength: number // 最大纸长
  materialPriceUnit: string // 用料报价单位
  deliveryPrice: string // 送货金额
  deliveryTotalWeight: string // 送货总重量
  totalWeightRounding: string // 总重量取舍
  roundingDigits: string // 取舎位数
  isDefault: boolean // 是否默认
  defaultWithLoss: boolean // 默认加损耗
  bomRecalculate: boolean // BOM是否重新计价
  noExtraCharge: boolean // 不进行加价设置
  costPriceByMaterial: boolean // 按用料计算成本单价
  processQtyByProduct: boolean // 工艺数量按成品推算
  noUploadFileByDefault: boolean // 默认不上传文件
}

// ERP基础资料-箱型资料 API
export const BaseBoxTypeApi = {
  // 查询ERP基础资料-箱型资料分页
  getBaseBoxTypePage: async (params: any) => {
    return await request.get({ url: `/erp/base-box-type/page`, params })
  },

  // 查询ERP基础资料-箱型资料详情
  getBaseBoxType: async (id: number) => {
    return await request.get({ url: `/erp/base-box-type/get?id=` + id })
  },

  // 新增ERP基础资料-箱型资料
  createBaseBoxType: async (data: BaseBoxTypeVO) => {
    return await request.post({ url: `/erp/base-box-type/create`, data })
  },

  // 修改ERP基础资料-箱型资料
  updateBaseBoxType: async (data: BaseBoxTypeVO) => {
    return await request.put({ url: `/erp/base-box-type/update`, data })
  },

  // 删除ERP基础资料-箱型资料
  deleteBaseBoxType: async (id: number) => {
    return await request.delete({ url: `/erp/base-box-type/delete?id=` + id })
  },

  // 导出ERP基础资料-箱型资料 Excel
  exportBaseBoxType: async (params) => {
    return await request.download({ url: `/erp/base-box-type/export-excel`, params })
  },

// ==================== 子表（ERP基础资料-箱型计算参数公式） ====================

  // 获得ERP基础资料-箱型计算参数公式分页
  getBoxCalculationFormulaPage: async (params) => {
    return await request.get({ url: `/erp/base-box-type/box-calculation-formula/page`, params })
  },
  // 新增ERP基础资料-箱型计算参数公式
  createBoxCalculationFormula: async (data) => {
    return await request.post({ url: `/erp/base-box-type/box-calculation-formula/create`, data })
  },

  // 修改ERP基础资料-箱型计算参数公式
  updateBoxCalculationFormula: async (data) => {
    return await request.put({ url: `/erp/base-box-type/box-calculation-formula/update`, data })
  },

  // 删除ERP基础资料-箱型计算参数公式
  deleteBoxCalculationFormula: async (id: number) => {
    return await request.delete({ url: `/erp/base-box-type/box-calculation-formula/delete?id=` + id })
  },

  // 获得ERP基础资料-箱型计算参数公式
  getBoxCalculationFormula: async (id: number) => {
    return await request.get({ url: `/erp/base-box-type/box-calculation-formula/get?id=` + id })
  },

// ==================== 子表（ERP基础资料-箱型图像坐标） ====================

  // 获得ERP基础资料-箱型图像坐标分页
  getBoxImageCoordinatePage: async (params) => {
    return await request.get({ url: `/erp/base-box-type/box-image-coordinate/page`, params })
  },
  // 新增ERP基础资料-箱型图像坐标
  createBoxImageCoordinate: async (data) => {
    return await request.post({ url: `/erp/base-box-type/box-image-coordinate/create`, data })
  },

  // 修改ERP基础资料-箱型图像坐标
  updateBoxImageCoordinate: async (data) => {
    return await request.put({ url: `/erp/base-box-type/box-image-coordinate/update`, data })
  },

  // 删除ERP基础资料-箱型图像坐标
  deleteBoxImageCoordinate: async (id: number) => {
    return await request.delete({ url: `/erp/base-box-type/box-image-coordinate/delete?id=` + id })
  },

  // 获得ERP基础资料-箱型图像坐标
  getBoxImageCoordinate: async (id: number) => {
    return await request.get({ url: `/erp/base-box-type/box-image-coordinate/get?id=` + id })
  },

// ==================== 子表（ERP基础资料-箱型用料公式） ====================

  // 获得ERP基础资料-箱型用料公式分页
  getBaseBoxMaterialFormulaPage: async (params) => {
    return await request.get({ url: `/erp/base-box-type/base-box-material-formula/page`, params })
  },
  // 新增ERP基础资料-箱型用料公式
  createBaseBoxMaterialFormula: async (data) => {
    return await request.post({ url: `/erp/base-box-type/base-box-material-formula/create`, data })
  },

  // 修改ERP基础资料-箱型用料公式
  updateBaseBoxMaterialFormula: async (data) => {
    return await request.put({ url: `/erp/base-box-type/base-box-material-formula/update`, data })
  },

  // 删除ERP基础资料-箱型用料公式
  deleteBaseBoxMaterialFormula: async (id: number) => {
    return await request.delete({ url: `/erp/base-box-type/base-box-material-formula/delete?id=` + id })
  },

  // 获得ERP基础资料-箱型用料公式
  getBaseBoxMaterialFormula: async (id: number) => {
    return await request.get({ url: `/erp/base-box-type/base-box-material-formula/get?id=` + id })
  },

// ==================== 子表（ERP基础资料-箱型参数公式） ====================

  // 获得ERP基础资料-箱型参数公式分页
  getBaseBoxParameterFormulaPage: async (params) => {
    return await request.get({ url: `/erp/base-box-type/base-box-parameter-formula/page`, params })
  },
  // 新增ERP基础资料-箱型参数公式
  createBaseBoxParameterFormula: async (data) => {
    return await request.post({ url: `/erp/base-box-type/base-box-parameter-formula/create`, data })
  },

  // 修改ERP基础资料-箱型参数公式
  updateBaseBoxParameterFormula: async (data) => {
    return await request.put({ url: `/erp/base-box-type/base-box-parameter-formula/update`, data })
  },

  // 删除ERP基础资料-箱型参数公式
  deleteBaseBoxParameterFormula: async (id: number) => {
    return await request.delete({ url: `/erp/base-box-type/base-box-parameter-formula/delete?id=` + id })
  },

  // 获得ERP基础资料-箱型参数公式
  getBaseBoxParameterFormula: async (id: number) => {
    return await request.get({ url: `/erp/base-box-type/base-box-parameter-formula/get?id=` + id })
  },

// ==================== 子表（ERP基础资料-箱型生产工序） ====================

  // 获得ERP基础资料-箱型生产工序分页
  getBaseBoxProductionProcessPage: async (params) => {
    return await request.get({ url: `/erp/base-box-type/base-box-production-process/page`, params })
  },
  // 新增ERP基础资料-箱型生产工序
  createBaseBoxProductionProcess: async (data) => {
    return await request.post({ url: `/erp/base-box-type/base-box-production-process/create`, data })
  },

  // 修改ERP基础资料-箱型生产工序
  updateBaseBoxProductionProcess: async (data) => {
    return await request.put({ url: `/erp/base-box-type/base-box-production-process/update`, data })
  },

  // 删除ERP基础资料-箱型生产工序
  deleteBaseBoxProductionProcess: async (id: number) => {
    return await request.delete({ url: `/erp/base-box-type/base-box-production-process/delete?id=` + id })
  },

  // 获得ERP基础资料-箱型生产工序
  getBaseBoxProductionProcess: async (id: number) => {
    return await request.get({ url: `/erp/base-box-type/base-box-production-process/get?id=` + id })
  },

// ==================== 子表（ERP基础资料-箱型备注） ====================

  // 获得ERP基础资料-箱型备注分页
  getBaseBoxRemarkPage: async (params) => {
    return await request.get({ url: `/erp/base-box-type/base-box-remark/page`, params })
  },
  // 新增ERP基础资料-箱型备注
  createBaseBoxRemark: async (data) => {
    return await request.post({ url: `/erp/base-box-type/base-box-remark/create`, data })
  },

  // 修改ERP基础资料-箱型备注
  updateBaseBoxRemark: async (data) => {
    return await request.put({ url: `/erp/base-box-type/base-box-remark/update`, data })
  },

  // 删除ERP基础资料-箱型备注
  deleteBaseBoxRemark: async (id: number) => {
    return await request.delete({ url: `/erp/base-box-type/base-box-remark/delete?id=` + id })
  },

  // 获得ERP基础资料-箱型备注
  getBaseBoxRemark: async (id: number) => {
    return await request.get({ url: `/erp/base-box-type/base-box-remark/get?id=` + id })
  },

  // 获取所有客户
  getAllBaseCustomer: async () => {
    return await request.get({ url: `/erp/base-box-type/list-all-customer` })
  },
  
  // 获取所有客户
  getAllBaseProcess: async () => {
    return await request.get({ url: `/erp/base-box-type/list-all-process` })
  }

}
